SCO VisionFS: White Paper

SCO Vision Family File and Print Services

A Quick Tour

System Requirements

Introduction
Platforms
Supported Servers
Supported Clients
Supported TCP/IP Stacks

Core Server
Reserved Ports
Mechanism
Master Daemon
Session Master
Session Engine

Naming and Browsing
Security
File Locking
Configuration
Profile Editor
Server Restart

Printing
TCP/IP Client
Minimum Requirements

Core Server

The principal component of SCO VisionFS is the UNIX SMB server. To illustrate where it fits with the rest of the networking technology, the diagram below shows the different layers involved.

In the diagram below the figure on the left is a reference model from ISO showing the recommended structure for networking communications. The different layers represent increasing levels of abstraction, from the low-level physical layer (network adapter) to the high-level application layer (graphical user interface).

The figure on the right attempts to map the actual layers a server would have to provide for SMB services to the corresponding part in the reference model. The lowest level is hardware i.e. ethernet, token ring etc. Above that are low-level transport protocols that are responsible for locating the remote machine, sending data to the remote machine and for intercepting data destined for the local machine. Protocols (SMB) and NetBIOS sit above these to facilitate a method of data transaction between machines and to allow development of network enabled programs. Finally the intricacies of networking technology are hidden from the end user by a graphical user interface.

The SCO VisionFS server has been implemented using the IETF specifications laid out in RFC 1001/1002. This details how to implement NetBIOS over TCP/IP. NetBIOS is an API to network adapters but is now a higher level of abstraction.

Currently the server uses TCP/IP as its transport protocol, but its architecture allows for easy extension to other transport protocols e.g. IPX/SPX, NetBEUI. This implies both the UNIX server and Windows client must have TCP/IP installed. All UNIX vendors supply TCP/IP as standard and Microsoft supplies it as part of the standard distribution for Windows 95 and NT. Another component discussed later is the client TCP/IP stack distributed with the product.

Reserved Ports

RFC 1001/1002 dictate that port numbers 137 and 139 are reserved for NetBIOS over TCP/IP.

  • 137 - is used for NetBIOS naming
  • 139 - is used for NetBIOS sessions/connections

In addition to this Microsoft have designated port number 138 to be used for browsing operations.

Mechanism

The core server has been structured into a number of different physical processes, each of which handles specific functionality. The structure addresses issues such as:

  • Simultaneous client connections
  • Scalability
  • Inter-process communication

The core server is split into the following processes (implemented as UNIX daemons):

Master Daemon

This is responsible for initializing the server, setting up a connection manager which regulates all connections made to the server and providing all naming and browsing facilities. Any NetBIOS connection request is intercepted by the connection manager and then passed on to the appropriate handler. This handler could be the session engine or another NetBIOS application running locally, or remotely on another machine on the network. This allows SCO VisionFS to run alongside existing NetBIOS applications. SCO VisionFS knows which server to pass these requests to by mapping NetBIOS names to port numbers (local and remote).

Session Master

If the request is to be handled by SCO VisionFS, the session master comes into play. Each SMB connection has to be handled by a process. The processes handling these connections are session engines and the session master is responsible for starting these. Each session engine can handle a maximum number of simultaneous connections, which can be configured.

Session Engine

This is the heart of the server. It deals with all SMB requests made by a client. The number of connections handled per process is by default 2.

A session engine can deal with the following dialects of SMB:

  • Windows 95 and NT (LM 0.12)
  • Windows 3.11 (Windows for Workgroups 3.1a)
  • Lanman 2.1
  • Lanman 2.0